package com.example.java_chatroom.mapper;

import com.example.java_chatroom.model.FriendInfo;
import com.example.java_chatroom.model.MessageSession;
import com.example.java_chatroom.model.MessageSessionUserItem;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface MessageSessionMapper {

    //根据userId 获取到该用户在哪个会话中存在，返回结果是一组sessionId
    List<Integer> getSessionIdsByUserId(Integer userId);


    //根据sessionId 在来查询这个会话都包含了哪些用户。(刨除最初的自己)
    List<FriendInfo> getFriendsBySessionId(Integer sessionId, Integer selfUserId);

    //新增一个会话记录并返回会话Id
    //    这里方法返回值 int 表示的是插入操作影响到几行。
    //    此处获取sessionId 是通过参数的messageSession 的sessionId 属性获取的
    Integer addMessageSession(MessageSession messageSession);


    //给message_session_user表也新增对应的记录
    Integer addMessageSessionUser(MessageSessionUserItem messageSessionUserItem);

    void insertMessageSessionUser(Integer sessionId, Integer friendId);

    void insertGroupTitle(Integer sessionId, String groupTitle ,String userId);

    void deleteSession(Integer sessionId);

    void deleteSessionUser(Integer sessionId);

    List<Integer> queryUserSessionIdByuserId(Integer userId);

    List<Integer> queryUserIdBysessionId(Integer sessionId);

    void deleteSessionUserBySessionIdANDUserId(Integer sessionId, Integer userId);


}
